Java中JDK8、JDK11、JDK17,该怎么选择?

您所在的位置:网站首页 openjdk jdk11 Java中JDK8、JDK11、JDK17,该怎么选择?

Java中JDK8、JDK11、JDK17,该怎么选择?

2023-10-24 10:15| 来源: 网络整理| 查看: 265

JDK的稳定版本

Java这个语言,1995 年发展至今,生态方面就不多说了,没有强大的生态,在科技快速发展的今天,是不可能被互联网企业与开发者认同的。

我们都知道,要使用Java语言,那么JDK就必不可少。

而经历了一代一代的变迁,JDK也慢慢更新换代,今年Oracle也是直接发布了JDK18,而到目前为止,我们的JDK存在了三个版本的长期支持版。

分别是JDK8、JDK11和JDK17。

而我们所说的长期支持版是什么呢?长期支持版本我们可以理解成一个项目会长期维护更新,也就是说,这三个版本是Oracle长期维护的JDK版本。而企业里面,就是需要长期支持版本,因为企业的项目需要稳定的开发环境。

如何选择

那JDK版本如此之多,我们改如何选择呢?毋庸置疑,我们肯定选择长期支持版本。

而我们长期支持版本中,JDK8是一个老熟人了,基本上Java大部分的项目都是基于JDK8环境。那既然这样,我们就来看看,JDK8的魅力。

JDK8

如果你在技术交流群或一群Java程序员中讨论JDK版本选择哪个,我相信,一般来说,他们都脱口而出:“JDK8”。

那么这个版本究竟为何受众面如此之广泛呢?

首先,回顾所有版本,JDK8刚出生时,他就冠名了一个相对完美的开发环境之称。因为相比以往的JDK7、JDK5这些,JDK8的生态很好,开发者使用起来也比之前的版本舒适,同时JDK8支持了几乎所有的开发功能需求,设计比较完善。

所以,JDK8也是迄今为止维护支持时间最长的版本,甚至比JDK17还长。

JDK11

科技在慢慢发展,在使用JDK8开发程序时,总存在一些弊端,也多了许许多多的需求,所以慢慢的,Oracle也发布了另一个长期支持更新维护版本——JDK11。

相比JDK8,用的人肯定没那么多,包括到现在,JDK8仍然是主流。

首先,JDK11对比JDK8,除了有很多内部的升级(比如开销和时延更低的GC、TLS1.3加持等等)之外,对于初学使用者来说也有一些语言使用层面的进化。

变量类型推断

新版Java引入了一个全新的类型关键字var,用var来定义的变量不用写具体类型,编译器能根据=右边的实际赋值来自动推断出变量的类型。

具体的话,就自己去尝试吧。

官方HTTP Client加持

现在JDK官方就自带HTTP Client了,位于java.net.http包下,支持发送同步、异步的HTTP请求,这样一来,以前咱们常用的HTTP请求客户端诸如:OKHttp、HttpClient这种现在都可以退下了!

总结

除了这两个明显的变化,其实还有很多内部结构方法的增加。就不多说了。

实际是,我个人觉得,如果不是有对应需求,那还是老老实实的用JDK8吧。

因为,说实话,JDK11的生态不太行,参杂在JDK8与JDK17之间。

JDK17

JDK17也是长期支持版本,相比11一般来说更具优势,但是,我查阅了一些网络上其他大佬的评价。

如下:

Java 17的变化真不大,不及java9的模块化,java11和12并最终在15里全面普及的zgc和shennadoah gc,16里的record类等。各个版本的发布情况和变化详情,我之前有整理过,见下面链接:

JDK1.0到17发布版本: https://shimowendang.com/docs/C1pC5q2Jff0DhCAzJDK9-17 相关新功能和版本机制:https://shimowendang.com/docs/hW6ddKDwt6YPJkDD

下面是知乎一位水友的评价。

imgimg

最主要的还有,Oracle 宣布 JDK 17 可以免费商用了。

其次就是JDK17的垃圾回收机制优化了。imgimg

除了这些自我生态方面的完善与增加,还有部分框架的依赖。

需要JDK17

Spring Framework 6 将采用 Java 17 和 Jakarta EE 9。

其次,还有Spring Boot 3.0.0 来啦!最小依赖 Java17!

imgimg

知乎大佬直呼:

一直以来,Java8 都是 Java 社区心头的痛。因为它代表着以稳定性为主的企业管理层,与拥抱变化为主的底层码农层之间的、爱的魔力拉锯战。

不升!成为各大厂心照不宣的选择。

现在,这种平衡或将打破。因为 Java 届的霸主框架 SpringBoot,选择了最小支持的 Java lts 版本,就是最新的 Java17。

所以,作为一个开发者,还是不能脱离企业的需求哈。如果需求要用的SpringBoot3版本的话,那也必须要使用JDK17及以上版本了。

具体的发展还是让我们这些开发者拭目以待吧。目前选择8还是完全没问题的。

尾述

互联网的发展迅速啊!我们技术有时候可能难以追上时代的步伐,不过,我们的思维一定要在世界的前沿,比较我们本来就是创造未来的人啊!

什么!!!JDK18版本今年又发布了,是短期支持版本,6个月,9大特性之JEP 400:默认为UTF-8。

好家伙,我还是先摸清楚JDK8的底细吧。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3